<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Загрузка программы и настроек в контроллер</title>
    <style>
        #header {
            background-color:black;
            color:white;
            text-align:center;
            padding:5px;
        }
        #content {
            float:left;
            padding:10px; 
        }
    </style>
</head>

<body>
    <div id="header">
        <h1>Загрузка программы и настроек в контроллер</h1>
    </div>


    <div id="content">
        <p>Для работы ПЛК в него необходимо загрузить программу и настройки. Программа загружается в виде двоичного файла с инструкциями процессору (файл с расширением bin). Он создаётся в результате успешной сборки проекта. Настройки контроллера хранятся в файле с расширением sfr. Загрузить программу и настройки в контроллер можно с помощью утилиты <span style="color:darkred">Загрузчик</span> или непосредственно из среды программирования. Работа с утилитой подробно освещена в соответствующем разделе справки. Здесь рассматривается вариант программирования прямо из среды.</p>
        <p>Для общей информации ниже изложен внутренний механизм программирования контроллера.</p>
        <p>При подаче питания на контроллер в нём запускается небольшая программа (bootloader), которая позволяет загрузить в контроллер код по протоколу Y-Modem. В контроллере имеется энергонезависимая память, часть которой распределена на системные нужды. В этой области памяти хранится кодовое слово, показывающее что в контроллер была успешно загружена программа. Если bootloader обнаруживает это кодовое слово в памяти он сразу же передаёт управление основной программе и контроллер начинает работать в соответствии с её алгоритмом. В противном случае bootloader ожидает загрузки новой программы в контроллер.</p>
        <p>Есть 2 способа заставить контроллер задержаться в режиме загрузчика. Первый - стереть кодовое слово, используя команды доступа к памяти по интерфейсу RS485. Второй вариант требует применения пульта - при подаче питания на контроллер необходимо удерживать на пульте кнопку F2.</p>
        <p>В среде Relkon IDE применяется первый вариант. При попытке загрузить программу выполняется поиск контроллера. Как только контроллер обнаруживается, в памяти стирается кодовое слово и даётся команда на перезапуск контроллера. После этого начинается загрузка программы по протоколу Y-Modem. По окончании этого процесса управление автоматически переходит к загруженной программе и она записывает кодовое слово в энергонезависимой памяти контроллера. Поэтому при последующих перезапусках программа стартует в штатном режиме (bootloader передаёт управление основной программе).</p>
        <p>Если процесс программирования по какой-либо причине был прерван, то контроллер при подаче питания будет оставаться в режиме bootloader-а до тех пор пока в него не будет загружена новая программа. Bootloader не использует в своей работе сетевой адрес контроллера. Поэтому программирование в этом случае будет возможно только по нулевому адресу.</p>
        <p>Для программирования может использоваться только канал PROG контроллера.</p>
        <p>Настройки контроллера хранятся в энергонезависимой памяти и могут читаться/писаться, используя протокол RKBIN/ASCII.</p>
        <p>Программа и настройки могут загружаться по отдельности или сразу вместе через команды на панели инструментов. Выбирать файлы bin и sfr при этом не требуется. Среда автоматически использует файлы текущего проекта.</p>
        <p><img src="images/allToPLC.ico" alt="load all to PLC" height="16"> Загрузка программы в контроллер, сразу после чего загружаются настройки (F6)</p>
        <p><img src="images/flash_chip.png" alt="load code to PLC" height="16"> Загрузка программы в контроллер (F7)</p>
        <p><img src="images/write_conf2.png" alt="load config to PLC" height="16"> Загрузка настроек в контроллер (F8)</p>
    </div>
</body>